home *** CD-ROM | disk | FTP | other *** search
Java Source | 1996-03-07 | 6.5 KB | 216 lines |
- /*
- This class is a basic extension of the Frame class. It can be used by
- either an applet or application. To use it, create a reference to the class,
- instantiate an object of the class, and call the show() method.
-
- example:
- CalculateFrame myNewFrame;
- myNewFrame = new CalculateFrame();
- myNewFrame.show();
-
- You can add controls or menus to this class with Cafe Studio.
- */
-
-
- import java.awt.*;
- import java.lang.*;
-
- public class CalculateFrame extends Frame {
-
- public CalculateFrame() {
- super("Simple Calculations");
-
- //{{INIT_CONTROLS
- setLayout(null);
- addNotify();
- resize(insets().left + insets().right + 299, insets().top + insets().bottom + 261);
- label1=new Label("Number 1 =");
- add(label1);
- label1.reshape(insets().left + 12,insets().top + 65,84,13);
- label2=new Label("Number 2 =");
- add(label2);
- label2.reshape(insets().left + 12,insets().top + 98,84,13);
- label3=new Label("Answer =");
- add(label3);
- label3.reshape(insets().left + 12,insets().top + 143,84,13);
- Number1Field=new TextField(8);
- add(Number1Field);
- Number1Field.reshape(insets().left + 114,insets().top + 60,72,18);
- Number2Field=new TextField(8);
- add(Number2Field);
- Number2Field.reshape(insets().left + 114,insets().top + 96,72,18);
- AnswerField=new TextField(8);
- add(AnswerField);
- AnswerField.reshape(insets().left + 114,insets().top + 138,72,18);
- AddButton=new Button("+");
- add(AddButton);
- AddButton.reshape(insets().left + 216,insets().top + 60,24,18);
- DivideButton=new Button("/");
- add(DivideButton);
- DivideButton.reshape(insets().left + 216,insets().top + 138,24,18);
- MultiplyButton=new Button("x");
- add(MultiplyButton);
- MultiplyButton.reshape(insets().left + 216,insets().top + 112,24,18);
- SubtractButton=new Button("-");
- add(SubtractButton);
- SubtractButton.reshape(insets().left + 216,insets().top + 86,24,18);
- //}}
-
- AnswerField.setBackground(Color.gray);
- Number1Field.requestFocus();
-
- //{{INIT_MENUS
- MenuBar mb = new MenuBar();
- menu1 = new Menu("&Calculate");
- menu1.add(new MenuItem("&Add"));
- menu1.add(new MenuItem("&Subtract"));
- menu1.add(new MenuItem("&Multiply"));
- menu1.add(new MenuItem("&Divide"));
- mb.add(menu1);
- setMenuBar(mb);
- //}}
- }
-
-
- public synchronized void show() {
- move(50, 50);
- super.show();
- }
-
-
- public boolean handleEvent(Event event) {
- if (event.id == Event.ACTION_EVENT && event.target == DivideButton) {
- OnDivide();
- return true;
- }
- else
- if (event.id == Event.ACTION_EVENT && event.target == MultiplyButton) {
- OnMultiply();
- return true;
- }
- else
- if (event.id == Event.ACTION_EVENT && event.target == SubtractButton) {
- OnSubtract();
- return true;
- }
- else
- if (event.id == Event.ACTION_EVENT && event.target == AddButton) {
- OnAdd();
- return true;
- }
- else
- if (event.id == Event.WINDOW_DESTROY) {
- hide();
- return true;
- }
-
- return super.handleEvent(event);
- }
-
- //{{DECLARE_CONTROLS
- Label label1;
- Label label2;
- Label label3;
- TextField Number1Field;
- TextField Number2Field;
- TextField AnswerField;
- Button AddButton;
- Button DivideButton;
- Button MultiplyButton;
- Button SubtractButton;
- //}}
-
-
- //{{DECLARE_MENUS
- Menu menu1;
- //}}
-
-
- public boolean action(Event event, Object arg) {
- if (event.target instanceof MenuItem) {
- String label = (String) arg;
- if (label.equalsIgnoreCase("&Divide")) {
- OnDivide();
- return true;
- } else if (label.equalsIgnoreCase("&Multiply")) {
- OnMultiply();
- return true;
- } else if (label.equalsIgnoreCase("&Subtract")) {
- OnSubtract();
- return true;
- } else if (label.equalsIgnoreCase("&Add")) {
- OnAdd();
- return true;
- }
- }
- return super.action(event, arg);
- }
-
- public void OnAdd() {
- double sum, num1, num2;
-
- try {
- num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
- num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- sum = num1 + num2;
-
- if( sum < 0 ) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.gray); }
-
- AnswerField.setText(String.valueOf(sum));
- }
-
- public void OnSubtract() {
- double diff, num1, num2;
-
- try {
- num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
- num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- diff = num1 - num2;
-
- if( diff < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.gray); }
-
- AnswerField.setText(String.valueOf(diff));
- }
-
- public void OnMultiply() {
- double product, num1, num2;
-
- try {
- num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
- num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- product = num1 * num2;
-
- if( product < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.gray); }
-
- AnswerField.setText(String.valueOf(product));
- }
-
- public void OnDivide() {
- double quotient, num1, num2;
-
- try {
- num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
- num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- if(num2 == 0) return;
-
- quotient = num1 / num2;
-
- if( quotient < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.gray); }
-
- AnswerField.setText(String.valueOf(quotient));
- }
-
- }
-